A search engine is a tool designed to search for information on the World Wide Web (WWW), where the information may include web pages, images, information and/or other types of files. Some search engines help users to refine their search queries by showing a number of search suggestions (i.e., query suggestions), in addition to the search results. These suggestions can be used as queries in the next step of the search process.
The effectiveness of a user's information retrieval from the web largely depends on whether the user can provide queries to search engines that properly describe the needed information. Writing queries is not easy, partially because queries are typically expressed using a small number of words (one or two words on average) and many words are ambiguous e.g., have different meanings depending on how they are used. To make the problem even more complicated, different search engines may respond differently to the same query. Therefore, there is no “standard” or “optimal” way to present queries to search engines, and as a result, query formulation is a bottleneck issue in the usability of search engines.
Many commercial search engines such as GOOGLE, YAHOO, LIVE SEARCH, ASK, and BAIDU provide query suggestions to improve usability. That is, by guessing a user's search intent, a search engine can suggest queries which may better reflect the user's information need. A commonly used query suggestion method finds similar queries in search logs and uses those queries as suggestions for each other. Another approach mines pairs of queries which are adjacent or co-occur in the same query sessions.
However, the aforementioned techniques may be slow and do not necessarily resolve any ambiguities in the search patterns.